﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СостоянияСертификацииНоменклатуры
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///Нет сертификата, но есть заявка на сертификацию
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"a5000a97-e27f-437b-aec2-2901fbb2c798\", \"Представление\":\"Заявка\"}")]
		Заявка = 0,
	///<summary>
	///Есть сертификат
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"00ee0163-5855-401f-966a-0913bac853af\", \"Представление\":\"Есть\"}")]
		Есть = 1,
	///<summary>
	///Отказано в сертификации
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"6ca93df7-dc3e-4b3f-9267-f0ba7ad3dcb9\", \"Представление\":\"Отказ\"}")]
		Отказ = 2,
	///<summary>
	///Нет сертификата, но пробы отбирались
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"9f1fbf74-77fb-4839-a4cb-e145a347a55e\", \"Представление\":\"ОтборПроб\"}")]
		ОтборПроб = 3,//Отбор проб
	}
	public static partial class СостоянияСертификацииНоменклатуры_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///Нет сертификата, но есть заявка на сертификацию
		///</summary>
		public static readonly Guid Заявка = new Guid("0129c2ae-b2fb-98c7-437b-e27fa5000a97");
		///<summary>
		///Есть сертификат
		///</summary>
		public static readonly Guid Есть = new Guid("13096a96-c8ba-af53-401f-585500ee0163");
		///<summary>
		///Отказано в сертификации
		///</summary>
		public static readonly Guid Отказ = new Guid("baf06792-d37a-b9dc-4b3f-dc3e6ca93df7");
		///<summary>
		///Нет сертификата, но пробы отбирались
		///</summary>
		public static readonly Guid ОтборПроб = new Guid("45e1cba4-47a3-5ea5-4839-77fb9f1fbf74");//Отбор проб
		public static СостоянияСертификацииНоменклатуры Получить(this СостоянияСертификацииНоменклатуры Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СостоянияСертификацииНоменклатуры Получить(this СостоянияСертификацииНоменклатуры Значение, Guid Ссылка)
		{
			if(Ссылка == Заявка)
			{
				return СостоянияСертификацииНоменклатуры.Заявка;
			}
			else if(Ссылка == Есть)
			{
				return СостоянияСертификацииНоменклатуры.Есть;
			}
			else if(Ссылка == Отказ)
			{
				return СостоянияСертификацииНоменклатуры.Отказ;
			}
			else if(Ссылка == ОтборПроб)
			{
				return СостоянияСертификацииНоменклатуры.ОтборПроб;
			}
			return СостоянияСертификацииНоменклатуры.ПустаяСсылка;
		}
		public static byte[] Ключ(this СостоянияСертификацииНоменклатуры Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СостоянияСертификацииНоменклатуры Значение)
		{
			switch (Значение)
			{
				case СостоянияСертификацииНоменклатуры.Заявка: return Заявка;
				case СостоянияСертификацииНоменклатуры.Есть: return Есть;
				case СостоянияСертификацииНоменклатуры.Отказ: return Отказ;
				case СостоянияСертификацииНоменклатуры.ОтборПроб: return ОтборПроб;
			}
			return Guid.Empty;
		}
	}
}